package com.chentf.behavioral.strategyy_Factory_templateMethod_01.code;

import org.springframework.beans.factory.InitializingBean;

/**
 * 模版方法
 */
public abstract class AbstractHandler implements InitializingBean {

    //A和B处理方式都是一样，我就可以直接在该方法中实现具体操作。当然你也可以不实现，让其子类实现该方法
    //但是如果几乎很多类处理方式都是一样，那么为了避免代码冗余就直接这样写就好了。
    public void eat(String name){
        System.out.println(name + "吃了饭");
    }

    //C要用的方法？
    public void work(String name){
        //直接实现是不是不太好？对的因为其他类中可能不需要这个方法，只有C特殊
        //System.out.println(name+ "只干活不吃饭");
        //所以我们在该方法中直接抛出异常，防止不需要该类的方法调用此方法
        throw new UnsupportedOperationException();
    }

}
